
import allow from '../config/allow';
import url from 'url'
import isverify from '../untils/jwt';

export default ()=>{
    return async (ctx,next)=>{
        //判断ctx.url发送过来的url是不是跟config数组里是否有；
        if(allow.some(itme=>itme===url.parse(ctx.url).pathname)) return await next();
        //获取cookies（查看保险箱）
        let token=ctx.cookies.get('token');
        //如果没有，就让其登录;
        if(!token) return ctx.body={code:444,meg:'请先登录'};
        let userinfo;
        try {
            userinfo=await isverify(token,'userinfo');
        } catch (error) {
            return ctx.body={code:444,msg:'没有权限访问资源'}
        }

        if ((new Date().getTime() - userinfo.loginTimer) / 1000/60/60  > 4) return ctx.body = { code: 444, msg: '登录超时请重新登录' }
        
        if(url.parse(ctx.url).pathname==='/islogin') return ctx.body={code:1,msg:'已登录',data:[]};

        ctx.info=userinfo;
        await next()
    }
}